//var a = 2;
//被分解成以下词法单元
//var
// 
//a
//=
//2
//;
console.log(a);
var a = 2;
//上面两行代码进行第三步重新组成代码时如以下
//var a
//console.log(a)
//a=2
//这说明a已经被定义了，但console没有找到a的值
//所以最后代码会显示undefinded
//如果一开始a就没有被定义，就会直接报错代码，比如以下代码
function foo(b){
    function bar(){
        console.log(a+b);
    }
    bar()
}
foo(2)

